package edu.jd.movieplatform.search.profit;


import edu.jd.movieplatform.common.*;
import edu.jd.movieplatform.info.cinema.Cinema;
import edu.jd.movieplatform.info.cinema.CinemaService;
import edu.jd.movieplatform.info.movie.Movie;
import edu.jd.movieplatform.info.movie.MovieService;
import edu.jd.movieplatform.search.m_point.m_Point;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.awt.Color;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/search/profit")
public class ProfitAPI {

    @Resource
    private ProfitService profitService;
    @Resource
    private CinemaService cinemaService;
    @Resource
    private MovieService movieService;
    @Resource
    private CommonService commonService;

    @RequestMapping("/profit")
    public Result ProfitByAll(){
        ProfitDto dto = new ProfitDto();
        List<Profit> list = profitService.getAllProfit(dto);
        float profit = 0;
        for(int i=0;i<list.size();i++)
        {
            profit = profit+list.get(i).getPrice();
        }

        return Result.success(profit);
    }

    @RequestMapping("/profitbymovie")
    public Result ProfitByMovie(Integer mov_id){
        ProfitDto dto = new ProfitDto();
        dto.setMov_id(mov_id);
        List<Profit> list = profitService.getAllProfit(dto);
        float profit = 0;
        for(int i=0;i<list.size();i++)
        {
            profit = profit+list.get(i).getPrice();
        }

        return Result.success(profit);
    }

    @RequestMapping("/profitbycinema")
    public Result ProfitByCinema(Integer cnm_id){
        ProfitDto dto = new ProfitDto();
        dto.setCnm_id(cnm_id);
        List<Profit> list = profitService.getAllProfit(dto);
        float profit = 0;
        for(int i=0;i<list.size();i++)
        {
            profit = profit+list.get(i).getPrice();
        }

        return Result.success(profit);
    }

    @RequestMapping("/profitcinema")
    public Result ProfitCinema(Integer cnm_num){
        List<Float> profitlist = new ArrayList<Float>();
        for(int i=1;i<cnm_num+1;i++)
        {
            ProfitDto dto = new ProfitDto();
            dto.setCnm_id(i);
            List<Profit> list = profitService.getAllProfit(dto);
            float profit = 0;
            for(int j=0;j<list.size();j++)
            {
                profit = profit+list.get(j).getPrice();
            }
            profitlist.add(profit);
        }


        return Result.success(profitlist);
    }

    @RequestMapping("/profitmovie")
    public Result ProfitMovie(Integer mov_num){
        List<Float> profitlist = new ArrayList<Float>();
        for(int i=1;i<mov_num+1;i++)
        {
            ProfitDto dto = new ProfitDto();
            dto.setMov_id(i);
            List<Profit> list = profitService.getAllProfit(dto);
            float profit = 0;
            for(int j=0;j<list.size();j++)
            {
                profit = profit+list.get(j).getPrice();
            }
            profitlist.add(profit);
        }


        return Result.success(profitlist);
    }

    @RequestMapping("/getcnm_id")
    public Result c_ProfitMovie(@RequestHeader("Token") String token){
        CurrentManager currentManager = MTokenUtils.getUserInfo(token, commonService);
        String m_id = currentManager.getM_id();
        Integer cnm_id = profitService.getcinemaid(m_id);
        return Result.success(cnm_id);
    }


    @RequestMapping("/c_profitmovie")
    public Result c_ProfitMovie(Integer mov_num,Integer cnm_id){
        List<Float> profitlist = new ArrayList<Float>();
        for(int i=1;i<mov_num+1;i++)
        {
            ProfitDto dto = new ProfitDto();
            dto.setMov_id(i);
            dto.setCnm_id(cnm_id);
            List<Profit> list = profitService.getAllProfit(dto);
            float profit = 0;
            for(int j=0;j<list.size();j++)
            {
                profit = profit+list.get(j).getPrice();
            }
            profitlist.add(profit);
        }


        return Result.success(profitlist);
    }

//    @RequestMapping("/findprofitall")
//    public Result findProfitAll() {
//        Map<String, Object> objectHashMap = new HashMap<>();
//
//        List<Cinema> cinemaList = cinemaService.getCinemaNameList();
//        List<String> cinemanameList = new ArrayList<>();
//        for(int i=0;i<cinemaList.size();i++){
//            cinemanameList.add(cinemaList.get(i).getCnm_name());
//        }
//
//        List<Float> profitlist = new ArrayList<Float>();
//        for(int i=1;i<cinemaList.size()+1;i++)
//        {
//            ProfitDto dto = new ProfitDto();
//            dto.setCnm_id(i);
//            List<Profit> list = profitService.getAllProfit(dto);
//            float profit = 0;
//            for(int j=0;j<list.size();j++)
//            {
//                profit = profit+list.get(j).getPrice();
//            }
//            profitlist.add(profit);
//        }
//
//        objectHashMap.put("name", cinemanameList);
//        objectHashMap.put("data", profitlist);
//
//        return Result.success(objectHashMap);
//    }
//
//    @RequestMapping("/findc_profitall")
//    public Result findProfitMovie(Integer cnm_id) {
//        Map<String, Object> objectHashMap = new HashMap<>();
//
//
//        List<Movie> movieList = movieService.getMovieNameList();
//        List<String> movienameList = new ArrayList<>();
//        for(int i=0;i<movieList.size();i++){
//        movienameList.add(movieList.get(i).getMov_name());
//    }
//
//    List<Float> profitlist = new ArrayList<Float>();
//        for(int i=1;i<movieList.size()+1;i++)
//    {
//        ProfitDto dto = new ProfitDto();
//        dto.setMov_id(i);
//        dto.setCnm_id(cnm_id);
//        List<Profit> list = profitService.getAllProfit(dto);
//        float profit = 0;
//        for(int j=0;j<list.size();j++)
//        {
//            profit = profit+list.get(j).getPrice();
//        }
//        profitlist.add(profit);
//    }
//
//        objectHashMap.put("name", movienameList);
//        objectHashMap.put("data", profitlist);
//
//        return Result.success(objectHashMap);
//
//  }

}
